#pragma once
#include "statemanager\GameStateManager.h"
#include <string>
#include "addons\SpriteCounter.h"
#include "HUD.h"
#include "console\GameConsole.h"
#include "EventManager.h"
#include <base\Controller.h>
#include "Map.h"
#include "Block.h"
#include "particles\ParticleSystem.h"
#include "ParticleSystem.h"
#include "Laser.h"
#include "Gutter.h"
#include "Constants.h"
#include "GameCore.h"
#include <base\Engine.h>
#include <renderer\DebugRenderer.h>

class RunState : public ds::GameState , public ds::EventHandler {

enum States {
	//MENU,
	PLAYING,
	GAME_OVER,
	PAUSE
};

public:
	RunState(std::string name,GameCore* core);
	~RunState(void) {}
	bool init() {
		return true;
	}
    bool update(float elapsedTime) {		
		return true;
	}
	bool onActivation() {
		return true;
	}
	bool onDeactivation() {
		return true;
	}
	//
	void process(ds::EventBuffer& buffer );	
private:	
	void switchState(States state);	
	States m_State;
	GameCore* m_Core;
};

